# coding=utf-8
# Sample Input :
# * + 1 2 3
# Sample Output :
# 9


def calc(tokens, index=0):
    # 基本情况1：检查索引是否超出范围，防止访问不存在的元素
    if index >= len(tokens):
        raise ValueError("表达式不完整")

    # 获取当前索引位置的token
    token = tokens[index]

    # 基本情况2：如果当前token是数字，直接返回其整数值和下一个索引位置
    # 这是递归的终止条件，确保递归能够结束
    try:
        result = float(token)
        return result, index + 1
    except:
        # 递归情况：如果当前token是操作符，需要递归计算两个操作数
        # 1. 先递归计算第一个操作数，传入index+1开始处理下一个元素
        a, new_index = calc(tokens, index + 1)
        # 2. 再递归计算第二个操作数，传入上一步返回的new_index继续处理
        b, final_index = calc(tokens, new_index)

        # 根据操作符对两个操作数进行计算，并返回结果和最终的索引位置
        if token == "+":
            return a + b, final_index
        elif token == "-":
            return a - b, final_index
        elif token == "*":
            return a * b, final_index
        elif token == "/":
            return a / b, final_index
        else:
            raise ValueError(f"不支持的操作符: {token}")


# 主程序：读取用户输入，分割成token列表，调用calc函数并打印结果
result, _ = calc(input().strip().split(" "))
print(f"{result:.2f}")
